home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / shells / kiss-0.11 / kiss-0 / kiss / src / movefiletofile.c < prev    next >
C/C++ Source or Header  |  1995-03-23  |  856b  |  43 lines

  1. #include "kiss.h"
  2.  
  3. int movefiletofile (char *src, char *dest, MvFlags fl)
  4. {
  5.     struct stat
  6.     srcbuf,
  7.     destbuf;
  8.     
  9.     if (fl.verbose)
  10.     printf ("%s -> %s\n", src, dest);
  11.  
  12.     if (stat (src, &srcbuf))
  13.     return (warning ("cannot stat \"%s\"", src));
  14.  
  15.     if (! stat (dest, &destbuf))
  16.     {
  17.     if (srcbuf.st_ino == destbuf.st_ino)
  18.         return (warning ("\"%s\" and \"%s\" are identical files",
  19.                  src, dest));
  20.     if (fl.interactive)
  21.     {
  22.         printf ("%s: move \"%s\" to \"%s\" [y/?] ", progname, src, dest);
  23.         if (getinput (stdin) != 'y')
  24.         return (0);
  25.     }
  26.     else if (fl.protect)
  27.     {
  28.         warning ("not overwriting \"%s\"", dest);
  29.         return (0);
  30.     }
  31.  
  32.     if (unlink (dest))
  33.         return (warning ("cannot remove dest \"%s\"", dest));
  34.     }
  35.  
  36.     if (rename (src, dest))
  37.     return (warning ("problems renaming \"%s\" to \"%s\"", src, dest));
  38.  
  39.     return (0);
  40. }
  41.         
  42.     
  43.